Regular Expression
1 备忘单
2 语法解释
1.普通字符:
- 正则表达式中的大多数字符都是普通字符,它们会按照字面意义进行匹配。
- 例如,正则表达式
hello
将匹配字符串中包含的字母序列 "hello"。
-
元字符:
- 正则表达式中的一些字符具有特殊的含义,被称为元字符。常见的元字符包括:
. ^ $ * + ? \ | ( ) [ ] { }
。 .
表示匹配任意字符,^
表示匹配字符串的开头,$
表示匹配字符串的结尾。
- 正则表达式中的一些字符具有特殊的含义,被称为元字符。常见的元字符包括:
-
字符类:
- 使用字符类可以匹配某一类字符。字符类使用方括号
[]
表示。 - 例如,
[aeiou]
表示匹配任何一个元音字母。
- 使用字符类可以匹配某一类字符。字符类使用方括号
-
范围:
- 在字符类中可以使用连字符
-
表示字符的范围。 - 例如,
[a-z]
表示匹配任何小写字母。
- 在字符类中可以使用连字符
-
反义:
- 使用
^
在字符类内表示反义。例如,[^0-9]
表示匹配任何非数字字符。
- 使用
-
重复:
- 使用
*
表示匹配零个或多个前面的字符。例如,ab*
匹配 "a", "ab", "abb", "abbb", 等。 - 使用
+
表示匹配一个或多个前面的字符。 - 使用
?
表示匹配零个或一个前面的字符。
- 使用
-
分组:
- 使用圆括号
()
可以将多个字符组合成一个子表达式。这允许在匹配时提取子表达式的内容。
- 使用圆括号
-
转义:
- 使用反斜杠
\
可以转义元字符,使其失去特殊含义。例如,\.
匹配实际的点字符。
- 使用反斜杠
-
锚点:
^
和$
分别用于匹配字符串的开头和结尾,而不是匹配字符串中的任意位置。
2.1 实战经验
- ^\w+.pdf$ 匹配PDF文件的 正则表达式
- {3, 6}出现3到6次
- \d匹配数字
- \W,W 取反意,非单词的部分,匹配除字母、数字和下划线之外的字符
- | 或的意思
Date: 4 Aug 3PM
正向先行断言:(?=) \d+(?=PM) 只匹配后面带有的数字
Product Code: 1064 Price:
的数字
负向后行断言: (?<!) (?<!$)\d+ 只匹配前面不带有 $ 的数字
正则表达式默认是贪婪的
2.2 资源
Regex 101 - ZH-CN
i Hate Regex - The Regex Cheat Sheet 常用表达式